package category

import (
	models "HeadLineNews/proto_models/manage/category_model"
	"HeadLineNews/utils"
	"github.com/gin-gonic/gin"
)

type Ctx interface {
	ParseParamAddCategory(c *gin.Context) (p *models.RequestAddCategory, err error)
	ParseParamUpdateCategory(c *gin.Context) (p *models.RequestUpdateCategory, err error)
	ParseParamListCategory(c *gin.Context) (p *models.RequestListCategory, err error)
}

type ctx struct{}

func NewCtx() Ctx {
	return &ctx{}
}

// ParseParamAddCategory 解析新增分类的参数
func (ctx *ctx) ParseParamAddCategory(c *gin.Context) (p *models.RequestAddCategory, err error) {
	p = new(models.RequestAddCategory)
	err = utils.ShouldBindProtobuf(c, p)
	return
}

// ParseParamUpdateCategory 解析新增分类的参数
func (ctx *ctx) ParseParamUpdateCategory(c *gin.Context) (p *models.RequestUpdateCategory, err error) {
	p = new(models.RequestUpdateCategory)
	err = utils.ShouldBindProtobuf(c, p)
	return
}

// ParseParamListCategory 解析批量展示分类的参数
func (ctx *ctx) ParseParamListCategory(c *gin.Context) (p *models.RequestListCategory, err error) {
	p = new(models.RequestListCategory)
	err = utils.ShouldBindProtobuf(c, p)
	return
}